// 常用方法集合

/**
 * @description 消息提示框
 * @param String title 提示内容
 * @param String icon 可选值 success loading 默认 none
 * @param Number duration 多少毫秒后隐藏
 */
export function toast(title = '', icon = 'none', duration = 2000) {
    uni.showToast({
        title,
        icon,
        duration,
        mask: true
    })
};

/**
 * @description 消息弹窗
 * @param String content 提示内容
 * @param String title 提示标题
 * @param Function callback 回调方法
 */
export function alert(content = '', title = '提示', callback) {
    callback = callback || function() {};
    uni.showModal({
        title,
        content,
        showCancel: false,
        success: (res) => {
            if (res.confirm) {
                callback()
            }
        }
    })
};

/**
 * @description 消息确认弹窗
 * @param String content 提示内容
 * @param String title 提示标题
 * @param Function callback 回调方法
 */
export function confirm(content = '', title = '提示', callback) {
    callback = callback || function() {}
    uni.showModal({
        title,
        content,
        success: (res) => {
            if (res.confirm) {
                callback();
            } else if (res.cancel) {
                // console.log('用户点击取消');
            }
        }
    })
};

/**
 * @description 页面跳转 参数以对象传递
 */
export function toPage(params) {
    // 没传参不执行相应操作
    if (this.$u.test.empty(params)) return;
    // 判断是否登录
    let login = this.$getState('login');
    // 如果需要验证但是未登录就拦截并提示登录
    if (params.login && !login) {
        // #ifdef MP-WEIXIN
        let pageId = this.$getState('pageId');
        setTimeout(() => {
            uni.$emit(`auth-login-${pageId}`, {});
        }, 1000)
        // #endif
        uni.showToast({
            title: '用户未登录!',
            icon: 'none'
        })
    } else {
        setTimeout(() => {
            this.$u.route(params);
        }, 50)
    }
};

